package com.supostacks.domain.repository;

import com.alibaba.fastjson.JSONObject;
import com.supostacks.domain.vo.UserVo;

import java.util.List;

public interface IUserRepository {
    /**
     * 插入用户
     * @param userVo 用户信息
     * @return 用户ID
     */
    String insert(UserVo userVo);

    /**
     * 删除用户
     * @param id 用户ID
     */
    void deleteById(String id);

    /**
     * 更新用户
     * @param userVo 用户信息
     * @return 用户ID
     */
    String updateById(UserVo userVo);

    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户信息
     */
    UserVo selectById(String id);


    /**
     * 查询数据列表
     * @param param 查询参数
     * @return 数据列表
     */
    List<UserVo> selectList(JSONObject param);

    /**
     * 分页查询数据列表
     *
     * @param options 查询参数
     * @param pageNo  页码
     * @param pageSize 页大小
     * @return 数据列表
     */
    JSONObject selectByPage(JSONObject options, int pageNo, int pageSize);
}
